Automatic color contrast analyzer

ABSTRACT

A computerized method and apparatus to analyze color contrast are provided. In an example embodiment, a computer readable storage medium is provided that comprises executable instructions. When executed, the instructions access data associated with a visual representation including text and perform optical character recognition on the visual representation to identify at least one character of the text. Further color data is extracted from a first area and a second area, the first area forming part of the at least one character and the second area external to the at least one character; and calculate a color contrast value based on the first and second areas. The instructions to access the data, perform the optical character recognition, extract the color data and calculate the color contrast are performed sequentially and automatically by a processor without human intervention.

FIELD

The present disclosure relates generally to analyzing color contrast inelectronic media, for example electronic documents.

BACKGROUND

Color contrast in digital media, or documents printed from digitalmedia, can determine the ease with which a person can view the contentsof the media. For example, in a text document the color contrast betweenthe text and surrounding regions affects the ease with which the text inthe document can be read. This may be particularly relevant for peoplewith visual impairments.

To accommodate visually impaired persons, guidelines such as the WebContent Accessibility Guidelines (WCAG) have been published. The WCAGprovides guidelines how to make Web content (e.g., text and images) moreaccessible to people with disabilities.

BRIEF DESCRIPTION OF DRAWINGS

The present disclosure is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 shows an example screenshot of a visual representation displayedon a display screen of a computer monitor;

FIG. 2 shows the example visual representation of FIG. 1 after anautomated method, in accordance with an example embodiment, has beenperformed to analyze color contrast;

FIG. 3 shows a schematic diagram of apparatus, in accordance with anexample embodiment, to analyze color contrast in a visualrepresentation;

FIG. 4 shows a flow diagram of a general overview of a method, inaccordance with an example embodiment, for analyzing color contrast in avisual representation;

FIG. 5 shows a flow diagram of a general overview of a method, inaccordance with an example embodiment, for extracting color data in avisual representation;

FIG. 6 shows a flow diagram of a general overview of a method, inaccordance with an example embodiment, for providing a user notificationbased on color contrast values in the visual representation;

FIG. 7 shows a flow diagram of a general overview of a method, inaccordance with an example embodiment, for suggesting modifiedluminosity values;

FIG. 8 shows a schematic view of the visual representation of FIG. 1after optical character recognition has been performed;

FIG. 9 shows a schematic view of two characters of text from the visualrepresentation wherein intersection points have been identified;

FIG. 10 shows a schematic view of the visual representation of FIG. 9wherein color data points have been identified based on the intersectionpoints;

FIG. 11 shows a schematic view of example hexadecimal values taken atthe color data points shown in FIG. 10;

FIG. 12 shows a schematic view of example contrast values calculatedfrom adjacent color data points;

FIG. 13 shows a schematic view of the visual representation of colordata points selected to lie along three parallels lines extendingthrough characters of the text;

FIG. 14 shows a schematic view of a graphical user interface (GUI), inaccordance with an example embodiment, for displaying color contrastinformation and receiving a user input;

FIGS. 15-17 show schematic views of example GUIs for displayingsuggested color contrast corrections;

FIG. 18 shows a schematic view of a GUI, in accordance with an exampleembodiment, for displaying suggested color shifting;

FIG. 19 shows a schematic view of a GUI, in accordance with an exampleembodiment, for displaying and correcting a color contrast value; and

FIG. 20 shows a schematic view of a GUI, in accordance with an exampleembodiment, for correcting a color contrast value; and

FIG. 21 is a simplified block diagram of a machine in the example formof a computing system within which a set of instructions for causing themachine to perform any one or more of the methodologies discussed hereinmay be executed.

DESCRIPTION OF EXAMPLE EMBODIMENTS

The description that follows includes illustrative systems, methods,techniques, instruction sequences, and computing machine programproducts that embody the present invention. In the followingdescription, for purposes of explanation, numerous specific details areset forth to provide an understanding of various example embodiments ofthe inventive subject matter. It will be evident, however, to oneskilled in the art that embodiments of the inventive subject matter maybe practiced without these specific details. In general, well-knowninstruction instances, protocols, structures, and techniques have notbeen shown in detail.

Overview

A computerized method and apparatus to analyze color contrast areprovided. In an example embodiment, a computer-readable storage mediumis provided that comprises executable instructions. When executed, theinstructions access data associated with a visual representation,including text, and perform optical character recognition on the visualrepresentation to identify at least one character of the text. Further,color data is extracted from a first area and a second area, the firstarea forming part of the at least one character and the second areaexternal to the at least one character. Thereafter, a color contrastvalue is calculated based on the first and second areas. Theinstructions to access the data, perform the optical characterrecognition, extract the color data and calculate the color contrast maybe performed sequentially and automatically by a processor without humanintervention.

Example Embodiments

FIG. 1 shows an example screenshot of a visual representation 100displayed on a display screen of a computer monitor. In the exampleembodiment, the visual representation 100 is shown to be a presentationslide including a bar graph display area 102 and a text display area104. Text 106 is displayed in the text display area 104. The text 106 isshown, by way of example, to read “Northwind Widgets Sales”. In theexample illustrated, the text 106 includes a plurality of characters orletters 106.1-106.21 that are displayed in a background area 108. Itwill be appreciated that the ease at which the text 106 can be read isdependent upon a color contrast between a color(s) selected for the text106 and a color(s) selected for the background area 108. In certaincircumstances where the color contrast between the text 106 and thebackground area 108 is insufficient, a user with a visual impairment mayhave difficulty in reading the text 106. Accordingly, in an exampleembodiment, a computerized method and apparatus is performed thatanalyzes a color contrast between a color selected for the text 106 anda color selected for the background area 108. When a color contrast ofthe text 106 and the background area 108 is insufficient, the textand/or the background area 108 may be modified so as to render the textmore easily readable. For example, as shown in FIG. 2, the luminosityand saturation intensity of the background area 108 may be reduced toenhance the color contrast between the text 106 and the background area108. In an example embodiment, the color contrast is analyzed atmultiple points where the text 106 and the background area intersect.

FIG. 3 shows a schematic diagram of apparatus 300, in accordance with anexample embodiment, to analyze color contrast in a visualrepresentation. The apparatus 300 may analyze the visual representation100 shown in FIG. 1 and, accordingly, is described by way of examplewith reference thereto.

The apparatus 300 includes memory to store an operating system 302 andinstructions to automatically, without human intervention, perform acolor contrast analysis on a visual representation. As described in moredetail with reference to FIG. 4, the apparatus 300 includes a colorcontrast analysis module 304 that comprises a data access module 306, anoptical character recognition (OCR) model 308, a color extraction module310, a color contrast calculation module 312, and a graphical userinterface module 314. The modules 306-314 may be implemented fully insoftware or hardware or any combination thereof.

Referring to FIG. 4, reference 400 generally indicates a method, inaccordance with an example embodiment, for analyzing color contrast in avisual representation. The method 400 may be performed by the apparatus300 and, accordingly, is described by way of example with referencethereto.

When the method 400 is initiated, data associated with a visualrepresentation including text (e.g., the visual representation 100including the text 106) is accessed as shown at block 402. Thereafter,at block 404 optical character recognition is performed on the visualrepresentation to identify at least one character. For example, withreference to FIG. 1, optical character recognition may be performed onthe visual representation 100 to identify at least one character106.1-106.21 of the text 106. In an example embodiment, all charactersconstituting the text 106 are identified using optical characterrecognition. For example, a screenshot of the visual representation maybe obtained and, thereafter, optical character recognition may beperformed on the screenshot. FIG. 8 shows a schematic view of the visualrepresentation 100 after optical character recognition has beenperformed on the text 106. For the purposes of this document the termcharacter is intended to include letters (e.g., of any alphabet, Englishor non-English) as well as numerals. Thus, in an example embodiment,Japanese, Chinese or any other characters may be analyzed and theexample embodiments should thus not be construed as being limited to theEnglish language.

After the optical character recognition has been performed, as shown atblock 406, color data is extracted from a first area and a second area.The first area forms part of a character 106.1-106.21 and the secondarea forms part of the background area 108 that is external to the text106. A color contrast value, or multiple color contrast values, is/arethen calculated based on color data extracted from the first and secondareas (see block 408). The color contrast value(s) may then be presentedto a user to identify if predetermined requirements have been met. Forexample, a comparison between the calculated color contrast values andthose provided in the Web Content Accessibility Guidelines (WCAG) may beperformed.

The method 400 may be provided in a standalone software applicationand/or integrated within another software application. For example, themethod 400 may be integrated within software used by software testers,user interface designers, software developers, document authors, reportcreators, dashboard creators, website creators and the like. Userinterface designers and developers may use the method 400 toautomatically validate a product design without requiring the use ofthird-party software in a manual copy-and-paste process in differentapplications. A software testing team may use the method 400 to catchproblem areas early in advance during product development. This may savetime as opposed to finding these issues at the end of the productdevelopment cycle when an accessibility audit is completed.

FIG. 5 shows a flow diagram of a general overview of a method 500, inaccordance with an example embodiment, for extracting color data in avisual representation. The method 500 may, for example, be performed bythe operation shown in block 406 of FIG. 4.

As shown at block 502, the method 500 may identify a plurality ofintersection points between the first area (e.g., the text 106) and thesecond area (e.g., the background area 108). The plurality ofintersection points may include a first intersection point, a secondintersection point and a third intersection point. However, it will beappreciated that any number of intersection points may be identified,and the number of identified intersection points may depend on a lengthof the text 106 in the visual representation.

FIG. 9 shows a schematic view of two characters of text 106 from theexample visual representation 100 wherein intersection points have beenidentified. In particular, a horizontal line 902 is selected so that itpasses through the text 106. In an example embodiment, line 902 isselected to be about 0.25 to 0.45 em (e.g., about 0.33 em) above abaseline of the characters in text 106. An em is the maximum height of aletter for given font and font size. Accordingly, intersection points904.1-904.9 arise wherein each intersection point 904.1-904.9 isprovided at a border between a character 106.1, 106.2 and the backgroundarea 108. It will be appreciated that the border between the characters106.1 and 106.2 need not necessarily be clearly defined and,accordingly, the intersection points 904.1-904.9 may lie in a borderzone between the characters 106.1, 106.2 and the background area 108.

FIG. 10 shows a schematic view of the visual representation of FIG. 9wherein color data points have been identified based on the intersectionpoints 904.1-904.9. In an example embodiment, color data points1000.1-1000.9 are selected midway between adjacent intersection points904.1-904.9. The color data points 1000.1, 1000.3, 1000.5, 1000.7 and1000.9 correspond to character color data and 1000.2, 1000.4, 1000.6 and1000.8 correspond to external color data.

It is to be appreciated that in other example embodiments, the colordata points 1000.1, 1000.3, 1000.5, 1000.7 and 1000.9 may be selected atany point along the line 902 provided that they fall within the areaoccupied by the characters 106.1 and 106.2. Likewise, the color datapoints 1000.2, 1000.4, 1000.6 and 1000.8 may be located at any pointalong the line 902 provided they are located in the background area 108.

In order to calculate color contrast values, the operations ofextracting character color data (blocks 504 and 506 in FIG. 5) mayinclude obtaining hexadecimal color values (e.g., a hexadecimal triplet)at each color data point. The hexadecimal triplet may include a firstbyte providing a red value, a second byte providing a green value, and athird byte providing a blue value. The numerical value of the byte mayrange from 00-FF for each color component, thus allowing a maximumnumber of 16,777,216 colors (256×256×256). FIG. 11 shows a schematicview of example hexadecimal values taken at the color data points 1000.1and 1000.2. A hexadecimal value “76923C” is shown by way of example tocorrespond to color data from the character 106.1, and a hexadecimalvalue “C4BC96” is shown by way of example to correspond to color datafrom the background area 108.

FIG. 12 shows a schematic view of example contrast values calculatedfrom adjacent color data points. The example color contrast values maybe calculated using the method 600 shown in FIG. 6. In particular, themethod 600 may automatically provide a user notification based on colorcontrast values in the visual representation. As shown at block 602, aplurality of color contrast values may be calculated from the pluralityof intersections points. Thereafter, each color contrast value of theplurality of color contrast values may be compared to a reference colorcontrast value (see block 604). Based on an outcome of the comparison,in block 606 a user notification may be selectively provided based onthe comparison. For example, selectively providing the notification mayinclude indicating that one or more color contrast values meet referencerequirements, indicating that one or more color contrast values do notmeet reference requirements, providing a red flag/highlight, providing agreen flag/highlight, etc.

As shown in FIG. 12, a plurality of color contrast values 1200.1-1200.9may calculated using color data from adjacent color data points. Forexample, the color contrast value 1200.1 may be calculated from thecharacter color data extracted at color data point 1000.1 and theexternal color data extracted at color data point 1000.2. Thus, in anexample embodiment, an array of color values may be used to analyze thecolor contrast between text 106 and the background area 108. In anexample embodiment, each color contrast value in the array (e.g., colorcontrast values 1200.1-1200.9) may be calculated with reference to anext value in the array using a method for finding color contrast suchas the method published in WCAG 2.0 draft (e.g., see below). In anexample embodiment, the calculations are performed repetitively untilthe end of the array is reached. The calculations may however beterminated when any one of the calculated color contrast values does notmeet a required color contrast reference value.

Color contrast is part of the WCAG 2.0 guidelines 1.4.3 and 1.4.5. It isalso part of the U.S. Rehabilitation Act of 1973 at Section 508 in§1194.21(j) and ISO Standard ISO-9241 at part 3, from InternationalOrganization for Standardization (ISO), Geneva, Switzerland. WCAG 2.0guidelines 1.4.3 and 1.4.5 provide as follows:

-   -   WCAG 2.0 Guideline 1.4.3: Contrast (Minimum): Text (and images        of text) have a contrast ratio of at least 5:1, except if the        text is pure decoration. Larger-scale text or images of text can        have a contrast ratio of 3:1.    -   WCAG 2.0 Guideline 1.4.5: Contrast (Enhanced): Text (and images        of text) have a contrast ratio of at least 7:1, except if the        text is pure decoration. Larger-scale text or images of text can        have a contrast ratio of 5:1.

In an example embodiment, the method 400 as shown in FIG. 4 may use textobjects to perform a color contrast analysis. For example, the operationin block 402 may include automatically capturing a screenshot of avisual representation (e.g., a report or the entire screen). Then, usingknown edge detection and text detection techniques, the operation inblock 404 may provide a mapping of all text objects in the visualrepresentation. The edge detection technique may include, but not belimited to, a predefined list of font families to enhance the accuracyof edge detection. Further to the operation shown in block 406, themapped text elements may have their text color and background colorautomatically sampled by an application using the method 400. In anexample embodiment, the application may select a new color based on theexisting color at a color data point between intersection points. Thismay, in an example embodiment, reduce inaccuracies introduced by fontsmoothing display options used by a client application or operatingsystem. The colors adjacent the intersection points may then be sampledto identify a background color.

In an example embodiment, using the hexadecimal color data values (seeFIGS. 11 and 12), the color contrast values may be calculated using theGeneral Technique 18 (G18), as set out in the WCAG 2.0 guideline 1.4.3and 1.4.5:

1. Measure the relative luminance of each letter (unless they are alluniform) using the formula:

L=0.2126*R+0.7152*G+0.0722*B where R, G and B are defined as:

if R _(sRGB)<=0.03928 then R=R _(sRGB)/12.92 else R=((R_(sRGB)+0.055)/1.055)̂2.4

if G _(sRGB)<=0.03928 then G=G _(sRGB)/12.92 else G=((G_(sRGB)+0.055)/1.055)̂2.4

if B _(sRGB)<=0.03928 then B=B _(sRGB)/12.92 else B=((B_(sRGB)+0.055)/1.055)̂2.4

-   -   and R_(sRGB), G_(sRGB), and B_(sRGB) are defined as:

R _(sRGB) =R _(8 bit)/255

G _(sRGB) =G _(8 bit)/255

B _(sRGB) =B _(8 bit)/255

Note: The “̂” character is the exponentiation operator.

2. Measure the relative luminance of the background pixels immediatelynext to the letter using same formula.

3. Calculate the contrast ratio using the following formula:(L1+0.05)/(L2+0.05), where L1 is the relative luminance of the lighterof the foreground or background colors, and L2 is the relative luminanceof the darker of the foreground or background colors.

4. Check that the contrast ratio is equal to or greater than 5:1, 7:1 orsome other value depending on the standard applied.

-   -   (See        http://www.w3.org/TR/2007/WD-WCAG20-TECHS-20070517/Overview.html#G18,        which is incorporated by reference into this description.)        It will be appreciated that color contrast values may be        calculated by techniques other than G18 or modification of G18.        This includes variations of the correct techniques as law,        accepted practices and/or understanding of vision changes        overtime.

FIG. 13 shows a schematic view of a visual representation of color datapoints selected to lie along three parallel lines 1302, 1304 and 1306extending through example characters 106.1 and 106.2 of the text 106.The methodology to determine intersection points between the characters106.1 and 106.2 and the background area 108 may be the same, orsubstantially similar, to the methodology as herein before describedwith reference to FIG. 9. Thus, in an example embodiment, color contrastvalues may be calculated along at least two spaced-apart lines extendingthrough characters 106.1 and 106.2 in the text 106. Thereafter, eachcolor contrast value selected along each line 1302, 1304, 1306 iscompared to an adjacent color contrast value (see FIG. 12) to determineif the color contrast between the text 106 and the background area 108meets a reference contrast value. The spacing of the parallel lines maybe selected so that an area proximate the top of the characters 106.1and 106.2 and the bottom of the characters 106.1 and 106.2 is analyzed.In the example shown in FIG. 13, line 1306 is selected to be about 0.1em above a baseline of the characters 106.1 and 106.2 and line 1302 isselected to be about 0.9 em above the baseline. The placement of theparallel lines may vary from one font to another font. In anotherexample embodiment, not shown, the parallel lines are selected to be 0.1and 0.8 em above the baseline.

A user notification may be provided if any one of the color contrastvalues selected along the lines 1302, 1304 and 1306 do not meet thereference contrast value. Optionally determining the color contrastvalues along multiple lines extending through the text 106 may allow acreative designer to enhance the overall readability of digital media.

FIG. 14 shows an example GUI 1400 to provide a user with an indicationof color contrast values in a visual representation. The GUI 1400 isshown by way of example to correspond with the visual representation 100and, accordingly, like reference numerals have been used to indicate thesame or similar features.

In the example GUI 1400, an example dialogue box 1402 is shown to informthe user of color contrast values in a selected area. For example, theuser may use a mouse or keyboard to identify a particular area foranalysis. In the example GUI 1400, it is assumed that the user hasselected the display area 104 including the text 106 and the backgroundarea 108. When the color contrast between the text 106 and thebackground area 108 does not meet a reference color contrast value, thedialogue box 1402 provides a narrative 1404 advising the user that thecolor contrast values do not meet the reference color contrast value. Inan example embodiment, the user is also provided with a plurality ofoptions which may be selected. For example, an option is provided not toreplace the color contrast values even though the analysis has shownthat they do not meet the reference color contrast value (see selection1406); an option is provided for the user to select his/her own colorcontrast values (see selection 1408); and an option is provided for theapplication to automatically provide or suggest color contrast valuesthat meet the predefined reference color contrast values (see selection1410). In an example embodiment, the GUI 1400 may be generated by themethod 600 shown in FIG. 6.

It will be appreciated that various different dialogue boxes, or anyother techniques, may be used in the GUI 1400 to communicate to a userthat the color contrast values do not meet the reference color contrastvalue(s). For example, a text highlighting feature or pop-up balloon orany other visual indicator may be provided to the user.

FIG. 7 shows a flow diagram of a general overview of a method 700, inaccordance with an example embodiment, for suggesting modifiedluminosity and saturation intensity values of the color of the text 106and/or the background area 108. For example, the method 700 may beinitiated when the user chooses the selection 1410 in the GUI 1400. Themethod 700 may be performed in conjunction with the methods 400 and 500.

As shown at block 702, the method 700 may include extracting a first setof color data from the first area (e.g., the text 106) and a second setof color data from the second area (e.g., the background area 108).Thereafter, as shown at block 704, a first luminosity value of the firstset of color data may be identified, and a second luminosity of thesecond set of color data may be identified. The luminosity of at leastone of the first set of color data and the second set of color data maythen be adjusted so that the color contrast value for the adjusted setmeets a reference color contrast value (see block 706). Suggested colordata, based on the adjusted set, may then be displayed on a displayscreen of a computer monitor (see block 708).

FIG. 15 shows a schematic view of an example GUI 1500 that provides twosample color strips 1502 and 1504 for providing color suggestions toenhance a color contrast ratio. The GUI 1500 is shown, by way ofexample, to correspond to the character color data (76923C) extracted atcolor data point 1000.1 and the external color data (C4BC96) extractedat the external color data point 1000.2. It will be appreciated that thecolor data may be extracted automatically using one or more operationsmethods 400, 500, 600 and 700. The GUI 1500 may provide color dataextracted from the visual representation 100 and, accordingly, isdescribed by way of example with reference thereto.

Based on the color data extracted (e.g., 76923C and C4BC96), colorstrips 1502 and 1504 may be displayed. The relative position of theextracted data may be shown on each color strip 1502 and 1504. If thehexadecimal value of the color data 1506 (corresponding to text colordata) is greater than the hexadecimal value of the color data 1508(corresponding to external color data), then a document creator may beprompted to change the selected color of the text 106 so that it isdarker than the selected color for the background area 108. In anexample embodiment, the GUI 1500 may provide a slider that a user canmanipulate with a mouse and/or keyboard to select new color data valuesfor the representation. Accordingly, the color data values may beadjusted so that color contrast values meet reference color contrastvalues.

FIG. 16 shows an example GUI 1600 providing a suggested color(corresponding to color data 617D29) for the text 106 so that therequired color contrast between the text 106 and the background area 108is met. The suggested color may be determined based on luminosityadjustments. In an example embodiment, the hues of the colors may notchange. For example, the colors may be separated in darkness until thereis sufficient contrast between the text 106 and the background area 108(see block 706 in FIG. 7).

In an example embodiment, when the methods 400, 500, 600 and/or 700 areused when creating documents for a web environment, the adjusted colorsmay be rounded off to a nearest “web safe color”. Web safe colors arehexadecimal triplets consisting of hexadecimal numbers selected from 00,33, 66, 99, CC, and FF. Accordingly, instead of the example color value617D29 suggested in the GUI 1600 (see FIG. 16), a web safe color value666633 may be used in the visual representation 100. In this exampleembodiment, a hue shift may occur. Accordingly, a GUI 1700 (see FIG. 17)may be provided to show a nearest web safe color to a document creator.

FIG. 18 shows an example graph 1800 of a color shifting that may beperformed to enhance the color contrast ratio between the text 106 andthe background area 108 by color shifting. Using the example color withhexadecimal value 76923C shown in FIG. 15, a color shift from the colorwith hexadecimal value 76923C to a color with a hexadecimal value of617D29 may occur in the Hue Saturation Brightness (HSB) and HueSaturation luminance (HSL) color space. HSL and HSV are two relatedrepresentations of points in an RGB color space, which attempt todescribe perceptual color relationships more accurately than RGB, whileremaining computationally simple.

As shown by arrow 1802, the saturation 1806 and the luminosity 1804 maybe adjusted so that the adjusted color traverses a color shift line1808. Thus, the color shift may be performed without changing theintensity of the color and thus making the color brighter or blacker. Inthe example graph 1800 a circle 1810 is shown to represent a selectedarea on which a color contrast analysis has been performed using themethods 400, 500, 600 and/or 700. For example the color with thehexadecimal value (76923C)_(RGB) corresponds to a color (79.53, 58.9%,57.25%)_(HSL). In an example embodiment where the method determinesthat, for example, the color of the text 106 needs to be darker,saturation may be increased (e.g., saturation may be increased by 1%)and luminosity may be decreased by 1%. That is, in an exampleembodiment, the color is adjusted with a change to the saturation thatis the opposite of the change to the luminosity. Accordingly, theadjusted color may move in the direction 1808 along the color shift line1802. In an example embodiment, the luminance and the saturation may beadjusted until the color contrast between the text 106 and thebackground area 108 meets a required value. In the example color shownin FIG. 16 the hexadecimal color value of (617D29)_(RGB) may be derivedfrom (79.53, 67%, 49%)_(HSL).

FIG. 19 shows a schematic view of a GUI 1900 for constructing a userinterface while analyzing and correcting color contrast values. Someexample embodiments could be used to review a completed user interfaceor a user interface under construction to determine color contrast. TheGUI 1900 includes various windows, icons, menus and text to create auser interface 1902 including one or more visual objects. The userinterface 1902 is shown by way of example to include visual objects inthe form of two text objects 1904 and 1906. The color contrast of thetext objects 1904, 1906 can be evaluated at creation of the userinterface 1902 or subsequently upon request (e.g., during apost-creation evaluation). The color contrast of the one or more visualobjects may be compared to a background area in proximity to each of thevisual objects of the in interface 1902. For example, if the text object1904, 1906 has a low color contrast, optionally, it may be included in ahighlighted area 1908. In an example embodiment, the color contrastvalues are displayed automatically in a floating window 1910. A value1912 displayed in the window 1910 may be the color contrast for aselected visual object. For example, the text object 1906 in ahighlighted area 1908 may have an insufficient contrast from thebackground color proximate the text object 1906. A current color pair1914 may be displayed in the window 1910. A suggested color pair 1916 isshown by way of example to be displayed below. In an example embodiment,a designer can accept the suggested color pair by clicking on anassociated icon or editing the replacement by clicking on a link 1918.The graphic designer may receive a continual indication of whether ornot the media being created complies with the standard acceptable levelsof color contrast. These include highlighting offending objects, havingwarning bubbles attached to these objects, and the like.

FIG. 20 shows a schematic view of a GUI 2000, in accordance with anexample embodiment, for correcting a color contrast value. The GUI 2000can be invoked by clicking on link 1918 of the window 1910. The GUI 2000includes the current color pair 1914 for an object and its background.The suggested color pair 1916 is shown below. When activated, anautomatic button 2002 automatically selects the suggested color. Acontrast slider 2004 is provided for adjusting the color contrast of thesuggested color pair. Alternatively, or in addition, the designer canenter a color contrast value in a data entry field 2006. In an exampleembodiment, a slider 2008 is provided to adjust the color of the visualobject (e.g., the visual object 1904). A corresponding slider 2010 maybe provided for the color of the background to the visual object. In anexample embodiment, by selecting a check box 2012 a single slider (notshown) is provided to allow the user to adjust these colorssimultaneously. Accordingly, moving the single slider has the effect ofmoving the sliders 2008 and 2010 simultaneously. This single slider, notshown, may dictate the average position of the suggested colors on thecolor shift line 1808. The contrast slider 2004 may determine theseparation of the two colors on the same line. Buttons 2014 allow theuser to preview, accept and cancel the selection of a suggested colorpair.

FIG. 21 is a simplified block diagram of a machine in the example formof a computing system within which a set of instructions for causing themachine to perform any one or more of the methodologies discussed hereinmay be executed. In alternative embodiments, the machine may beconnected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in a server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, or any machine capable of executing a set of instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein.

The example computing system 2100 includes a processor 2102 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), main memory 2104 and static memory 2106, which communicate witheach other via bus 2108. The computing system 2100 may further includevideo display unit 2110 (e.g., a plasma display, a liquid crystaldisplay (LCD) or a cathode ray tube (CRT)). The computing system 2100also includes alphanumeric input device 2112 (e.g., a keyboard), userinterface (UI) navigation device 2114 (e.g., a mouse), disk drive unit2116, signal generation device 2118 (e.g., a speaker), and networkinterface device 2120.

A disk drive unit 2116 includes machine-readable medium 2122 on which isstored one or more sets of instructions and data structures (e.g.,instructions 2124) embodying or used by any one or more of themethodologies or functions described herein. Instructions 2124 may alsoreside, completely or at least partially, within main memory 2104 and/orwithin the processor 2102 during execution thereof by the computingsystem 2100, with the main memory 2104 and the processor 2102 alsoconstituting machine-readable, tangible media. Instructions 2124 mayfurther be transmitted or received over a network 2126 via a networkinterface device 2120 using any one of a number of well-known transferprotocols (e.g., Hypertext Transfer Protocol (HTTP)).

While the machine-readable medium 2122 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches) that store the one ormore sets of instructions. The term “machine-readable medium” shall alsobe taken to include any medium that is capable of storing, encoding orcarrying a set of instructions for execution by the machine and thatcauses the machine to perform any one or more of the methodologies ofthe present application, or that is capable of storing, encoding orcarrying data structures utilized by or associated with such a set ofinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, opticaland magnetic media, and carrier wave signals.

While the invention(s) is (are) described with reference to variousimplementations and exploitations, it will be understood that theseembodiments are illustrative and that the scope of the invention(s) isnot limited to them. In general, techniques for embedding priorities inmultimedia streams may be implemented with facilities consistent withany hardware system(s) defined herein. Many variations, modifications,additions, and improvements are possible.

Plural instances may be provided for components, operations, orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the invention(s). Ingeneral, structures and functionality presented as separate componentsin the exemplary configurations may be implemented as a combinedstructure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements fall within the scope of the invention(s).

1. A computer-readable storage medium, comprising executableinstructions to: access data associated with a visual representationincluding text; perform optical character recognition on the visualrepresentation to identify at least one character of the text; extractcolor data from a first area and a second area, the first area formingpart of the at least one character and the second area external to theat least one character; and calculate a color contrast value based onthe first and second areas.
 2. The computer-readable storage medium ofclaim 1, wherein the instructions to access the data, perform theoptical character recognition, extract the color data and calculate thecolor contrast are performed sequentially and automatically by aprocessor without human intervention.
 3. The computer-readable storagemedium of claim 1, further comprising executable instructions to returnthe color contrast value.
 4. The computer-readable storage medium ofclaim 1, wherein the instructions to access data comprise obtaining ascreenshot of the visual representation rendered on a display screen. 5.The computer-readable storage medium of claim 1, wherein theinstructions to extract the color data comprise executable instructionsto: identify a plurality of intersection points between the first areaand the second area, the plurality of intersection points including atleast a first intersection point, a second intersection point and athird intersection point; extract character color data at a first colordata point between the first intersection point and the secondintersection point; extract external color data at a second color datapoint between the second intersection point and the third intersectionpoint; and calculate the color contrast value based on the charactercolor data and the external color data.
 6. The computer-readable storagemedium of claim 5, wherein the plurality of intersection points arealong a straight line intersecting a plurality of characters of thetext.
 7. The computer-readable storage medium of claim 6, furthercomprising executable instructions to: calculate a plurality of colorcontrast values from the plurality of intersections points; compare eachcolor contrast value of the plurality of color contrast values to areference color contrast value; and selectively return a notificationbased on the comparison.
 8. The computer-readable storage medium ofclaim 6, further comprising executable instructions to: calculate aplurality of color contrast values along at least two spaced apart linesextending through characters in the text; compare each color contrastvalue of the plurality of color contrast values to a reference colorcontrast value; and selectively return a notification based on thecomparison.
 9. The computer-readable storage medium of claim 1, furthercomprising executable instructions to: compare the color contrast valuewith a reference contrast value; and provide a notification based on thecomparison.
 10. The computer-readable storage medium of claim 9, furthercomprising executable instructions to: calculate a plurality of contrastvalues using one or more characters in the text; and provide a displaynotification when a result of the comparison is less than a referencecontrast value.
 11. The computer-readable storage medium of claim 1,wherein the instructions to extract the color data comprise executableinstructions to: extract a first set of color data from the first area,and a second set of color data from the second area; identify a firstluminosity value of the first set of color data, and a second luminosityof the second set of color data; adjust the luminosity of at least oneof the first set of color data and the second set of color data so thatthe color contrast value for an adjusted set meets a reference colorcontrast value; and return suggested color data on, wherein thesuggested color data is based on the adjusted set.
 12. Thecomputer-readable storage medium of claim 11, further comprisingexecutable instructions to automatically modify the visualrepresentation based on the adjusted set.
 13. The computer-readablestorage medium of claim 1, further comprising executable instructions togenerate a graphical user interface component that displays the colorcontrast value.
 14. The computer-readable storage medium of claim 1,wherein the instructions are integrated within an application programfor creating graphic representations.
 15. An apparatus comprising:memory to store executable instructions; and a processor to execute theinstructions, the instructions to: access data associated with a visualrepresentation including text; perform optical character recognition onthe visual representation to identify at least one character of thetext; extract color data from a first area and a second area, the firstarea forming part of the at least one character and the second areaexternal to the at least one character; and calculate a color contrastvalue based on the first and second areas.
 16. The apparatus of claim15, wherein the instructions to access the data, perform the opticalcharacter recognition, extract the color data and calculate the colorcontrast are performed sequentially and automatically by a processorwithout human intervention.
 17. The apparatus of claim 15, wherein theinstructions display the color contrast value on a display screen. 18.The apparatus of claim 15, wherein the instructions to access datacomprise obtaining a screenshot of the visual representation rendered ona display screen.
 19. The apparatus of claim 15, wherein theinstructions to extract the color data comprise instructions to:identify a plurality of intersection points between the first area andthe second area, the plurality of intersection points including at leasta first intersection point, a second intersection point and a thirdintersection point; extract character color data at a first color datapoint between the first intersection point and the second intersectionpoint; extract external color data at a second color data point betweenthe second intersection point and the third intersection point; andcalculate the color contrast value based on the character color data andthe external color data.
 20. The apparatus of claim 15, wherein theplurality of intersection points are selected to be along a straightline intersecting a plurality of characters of the text.